1. Technical Field
The invention relates to combining a network stack with a modem core for use in both computer and non-computer applications. More particularly, the invention relates to an Internet-aware modem which combines any number of point-to-point devices with the network protocols necessary to communicate on the Internet, where these devices include various speed traditional modems from 2400 kbps to 56 kbps, ISDN modems, newer xDSL modems, and digital cellular modems.
2. Description of the Prior Art
Computer modems were developed in a time when most connections were made to proprietary online services, interactive terminals, bulletin board services (BBSs), or corporate network systems. As such, it was necessary to implement connection protocols in software because there existed at the time a number of such protocols. These protocols included x-modem, y-modem, z-modem, kermit, and interactive character based interfaces.
Today, with popularity of the Internet, a vast majority of modems are now used exclusively to connect with ISP's, which in turn connect the user to the Internet. Therefore, there is now a predominant set of connection protocols. Such protocols are used for most modem connections. Accordingly, there is a real need and advantage in designing a modem that is Internet-ready.
The connection protocols used by the Internet and their hierarchical relationship are shown in FIG. 1. These protocols include TCP 10, IP 11, UDP 13, and PPP 12. Optimizing a modem for use with the Internet offers many advantages including reduced transmission latency, reduced servicing requirements, lower processing requirements from the system's CPU, and optimized transmission rates.
Current computer systems treat a modem subsystem as a serial device. A block diagram of an existing system is shown in FIG. 2. In such systems, an Internet application, such as a Web browser 21, is run in software 19 on the main CPU 22. This application, in turn calls upon the computer network stack 23, which is also implemented in software. The network stack implements the TCP, IP, UDP, and PPP protocols. Once the data have been processed, the resulting packets are sent by the CPU via the computer bus 28 to a serial port interface 27 in the modem system 20. The modem system, for example a modem card 18, is seen as a serial I/O device by the host processor. These devices usually accept data in byte quantities and place them in an outgoing FIFO 24. These FIFOs can be anywhere from 8 bytes to 64 bytes. The CPU normally writes a fixed number of bytes, then waits for the serial I/O device to notify it that all the data have been sent and that it is ready to accept more data. This notification is usually done via system interrupts. The packet data, after it is written into the FIFO, is fed to the modem core 25 at the outgoing data rate and thence to the telephone line 29.
For received data, the modem first places all incoming packets into the input FIFO 26. The device can then be configured to interrupt the host CPU when any data are available or when the received data reaches some level (i.e. 16 bytes). When notified, the CPU reads all the data in the input FIFO, and stores the data temporarily in a buffer in system memory (not shown). The bottom protocol, PPP (see FIG. 1) can start to process the data, but it cannot pass up the data to the next layer until the entire packet is received.
Once the whole packet is received, the PPP portion of the software network stack passes the data up to the second protocol (IP). The IP software then processes the IP header and, after verifying the header checksum, passes the packet to the TCP handler. The TCP handler then checks its checksum, and passes the data on to the appropriate application, as specified by the PORT number in the TCP header.
Because most modems in computers today are used to connect to the Internet, it makes it economically feasible and practical to optimize a modem for this environment. What this entails is embedding in the modem system, the ability to handle the necessary network protocols and use the knowledge of the protocols to tune the transmission characteristics of the modem. This is the same rationale behind the popularity of Window's accelerator graphics cards. Because graphic chip manufacturers know that a vast majority of PC's today run the Microsoft Windows® operating system, they fine-tune their architectures to enhance the performance in this environment. This would not be practical if there were a number of operating systems with different graphic APIs, each with a significant portion of the market place. However, with the one over-riding standard, most graphic card manufactures have chosen to optimize their hardware for the Windows environment, even though today's Pentium class processors are very capable of handling the graphic chores without external support. This is because the function is required in most circumstances, and it is advantageous to offload the host processor so that it has that much more MIPs to run standard applications.
A similar situation now exists in the modem card market. It would therefore be advantageous to embed the Internet network protocol stack, along with special logic, thereby enabling the modem device to become Internet-ready, such that the modem system offloads much of the network protocol processing from the main CPU, while improving the overall performance of the communication system.